მაგალითი ობიექტით Command შენახული პროცედურის შექმნა და შენახვა კატალოგში
შევქმნათ მოდული და პროგრამა სახელით qula_jami ჩავწეროთ მასში. პროგრამა, რომ წვდომადი იყოს პროექტში არსებული ნებისმიერი ადგილიდან გავაფორმოთ იგი Public Sub
’
Public Sub qula_jami()
Dim cat As New ADOX.Catalog ’ ობიექტური ცვლადის cat გამოცხადება და ეგზემპლარის შექმნა
Dim br As New ADODB.Command ’ ობიექტური ცვლადის br გამოცხადება და ეგზემპლარის შექმნა
cat.ActiveConnection = CurrentProject.Connection ’დაკავშირება მიმდინარე ბაზასთან
' ობიექტი Command თვისებაში CommandText დასაწყისში გამოცხადებულია პარამეტრი სახელით V1, რომლის ტიპია Short. შემდეგ დაწერილია SQL-ის ინსტრუქცია, რომლის განყოფილებაში HAVING გამოყენებულია ეს პარამეტრი.
br.CommandText = "PARAMETERS [V1] Short;" & _
" SELECT tbsua_gegma.sagani_kodi, tbsua_gegma.sual_tipi, Sum(tbsua_gegma.maq_qula) AS SumOfmaq_qula, Count(tbsua_gegma.maq_qula) AS CountOfmaq_qula" & _
" FROM tbsua_gegma" & _
" GROUP BY tbsua_gegma.sagani_kodi, tbsua_gegma.sual_tipi" & _
" HAVING (((tbsua_gegma.sagani_kodi)=[V1]))"
’ კატალოგში პროცედურის დამატება. პროცედურის სახელია jami_qula1. მიაქციეთ ყურადღება პროცედურის სახელი პროგრამის სახელისგან განსხვავდება. აქედან ჩანს, რომ ერთი პროგრამით რამდენიმე პროცადურა სეიძლება იქნეს აღწერილი და ჩაწერილი კატალოგში
cat.Procedures.Append ("jami_qula1"), br
Set cat = Nothing
End Sub
Public Sub amosla() 'კატალოგიდან შენახული პროცედურის ამოშლა
Dim cat As New ADOX.Catalog
Dim br As New ADODB.Command
cat.ActiveConnection = CurrentProject.Connection
cat.Procedures.Delete "jami_qula1"
End Sub
პროცედურაში გამოცხადებული პარამტერი დაკავშირებული არ არის კონკრეტულ ფორმასთან და ცხადია ამ ფორმაზე დატანილ ველებთან. პროცედურის გამოძახება, დაკავშირება კონკრეტულ ფორმასთან ხორციელდება ამ პროცედურის შესრულების რეჟიმში.
Dim can2 As New ADODB.Recordset
Dim br As New ADODB.Command
Dim cat As New ADOX.Catalog 'კატალოგის ობიქტური ცვლადის გამოცხადება და ეგზემპლარის შექმნა
cat.ActiveConnection = CurrentProject.Connection 'კატალოგის დაკავშირება პროექტთან
’
Set br = cat.Procedures("jami_qula1").Command ' კატალოგიდან შენახული პროცედურის გამოძახება
’
br.Parameters("[V1]").Value = Me.Vsagani ’პარამეტრის მნიშნელობის აღება კონკრეტულ ფორმაზე დატანილი ველიდან - Vsagani-დან
can2.Open br, ,adOpenStatic, adLockReadOnly, adCmdStoredProc 'ჩანაწერთა სიმრავლის გაღება და ამორჩევა შენახული პროცედურით. ყურადღება მიაქციეთ ამ სტრიქონის ბოლო პარამეტრის მნიშვნელობას. აქ წერია adCmdStoredProc, რაც ნიშნავს, რომ ჩანაწერების ამორჩევის წყაროა შენახული პროცედურაა
ობიექტი Command შეიძლება უშუალოდ პროგრამაში იქნეს გამოყენებული
Private Sub Report_Open(Cancel As Integer)
Dim can As New ADODB.Recordset
Dim br As New ADODB.Command
br.ActiveConnection = CurrentProject.Connection
’პარამეტრული შეკითხვის ფორმირება
br.CommandText = "PARAMETERS [V1] Long;" & _
" SELECT * FROM tbgamocda_casabarebeli" & _
" WHERE uwyisi= [V1]"
’ პარამეტრის დაკავშირება ფორმასთან და მნიშვნელობის მიღება ველიდან სახელით Vauwyisi
br.Parameters("[V1]").Value = Form_Fgamocda.Vauwyisi
br.Execute ("[V1]")
’ ჩანაწერთა სიმრავლის გაღება
can.Open br, , adOpenStatic, adLockReadOnly, adCmdText
ოპერატორები
can.Close
br.Execute.Close
End Sub